A Peer-to-Peer (P2P) overlay communication network is a distributed system created by the nodes participating in the system. Such an overlay network is completely decentralized and does not rely on central servers for its operation. The nodes participating in the system, called peers, route messages and store data on behalf of other nodes. The overlay network uses an algorithm such as a Distributed Hash Table (DHT) to organize the topology of interconnections among the peers participating in the system. For DHT based P2P overlay networks a ring topology is assumed. This is illustrated in FIG. 1. In this network, a peer 110 maintains a set of links to other peers 111-117 on the ring 100. This set of links is the peer's routing table. In some DHTs such as Chord, the entries in the routing table are called fingers 115-117. Chord is described in more detail in the paper ‘Chord: A Scalable Peer-to-Peer Lockup Protocol for Internet Applications’ by Stoica et al published in 2003. In addition to the routing table, each peer 110 also maintains another data structure called the neighbor list. The neighbor list consists of a successor list and a predecessor list. The successor list contains pointers to the immediate successors 111,112 and the predecessor list to the immediate predecessors 113,114 of peer 110. The way a peer 110 picks its neighbors and fingers is determined by the DHT algorithm. The successors 111,112 and predecessors 113,114 are also called direct neighbors and the fingers 115-117 are called routing neighbors. The term ‘neighbor peer’ is here used to include both successors 111,112 predecessors 113,114 and fingers 115-117.
Peers in a DHT-based overlay network are identified using node identifiers (Node-IDs). When a given peer 110 wants to transmit a message to another peer 130 end-to-end, it follows a recursive routing process. The peer 110 initiating a message consults its routing table to find the closest predecessor of the target Node-ID (say for example peer 116) and forwards the message to that peer 116. The receiving peer 116 then repeats the same routing process. This recursive routing process continues (for example via peer 120) until the message reaches the peer 130 identified by the target Node-ID.
The messages are sent using a P2P signaling protocol. The messages and their responses are supervised by end-to-end retransmission and end-to-end transaction timers. An end-to-end retransmission timer is used to determine by a peer 110 that has originated a message when the message should be retransmitted if no response has been received. An end-to-end transaction timer is a timer that determines the maximum lifetime of a request, that is, the time after which the originating peer 110 considers the request to have failed if no response has been received.
End-to-end timers are different from hop-by-hop timers. End-to-end timers are used to control the lifetime of the transaction and retransmission across multiple intermediate hops in the overlay network. In contrast, hop-by-hop timers are used by intermediate peers forwarding a message to control the retransmissions over a single hop between two peers. Examples of the latter are timers in the TCP protocol.
An example of a P2P signaling protocol is RELOAD (Resource Location And Discovery Base Protocol) as described in the draft IETF paper ‘draft-ietf-p2psip-base-19’ by Jennings et al and published in October 2011. The RELOAD protocol uses a fixed 3 second end-to-end retransmission timer at the initiating peer 110 and considers the transaction to have failed if no response is received within a fixed time limit of 15 seconds (i.e., RELOAD uses a 15 second transaction timer).
Many P2P overlay networks consist of heterogeneous devices. One example of heterogeneity in the device population is the access network type that the device is using. Some of the devices may use a fixed Internet connection, whereas others might use a wireless or cellular connection. Some of the types of connections that different devices may use are listed below:                Wireless connection: different versions of the Wi-Fi (IEEE 802.11) standard, WiMAX        Cellular connection: GPRS, EDGE, UMTS, HSDPA, HSPA, LTE, etc.        Fixed connection: ISDN, ADSL, LAN, fiber, cable        Other: satellite        
For example, a peer 110 in the overlay network may maintain, in its routing table, links with peers 111-117 using very different access technologies. As an example, the routing table of a given peer 110 may contain one peer 115 with a narrowband GSM data link with a 14.4 kbit/s bandwidth, and another peer 117 connected via a broadband fiber-to-home link having a 100 Mbit/s bandwidth, and anything in between. Further, the geographical distances between the peers may vary especially in global-scale overlays such as in a global P2PSIP telephony network. The Round Trip Times (RTTs) associated with communicating with these devices may therefore be of completely different magnitude.
Significantly different Round Trip Times cause however problems when using fixed timer values for the end-to-end transaction and retransmission timers in P2P signaling protocols such as RELOAD. If the timer values are too short, this results in unnecessary retransmissions and requests that are considered to have failed although a response would be on its way. If the fixed timer values are too long, the result is unnecessarily long messaging delays for transactions requiring retransmissions.
Fixed values for the transaction timer assume that all messages travel the same number of hops in the overlay. This assumption is not true since the number of hops messages travel depends on the numerical distance between the source and destination Node-IDs. Fixed timer values are also not suitable when conditions (such as traffic load on a link, overlay network size, or signal strength of a wireless connection) change.
Since P2P overlay networks determine peer aliveness based on transaction timeouts, inappropriately configured fixed timers can result in too slow reaction to failed peers and even unnecessary removals of peers from the routing table.